package com.py.credit.entity.enums;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.py.credit.entity.common.OptionalColumn;

/**
 * 手动关联的枚举类
 * 
 * @author jicm
 *
 */
public enum ResourceManualAssociateFieldsEnum {
	
	A000001("A000001", "企业名称", "varchar", "input", true, true,new HashMap<String, String>(),true,true),
	A000002("A000002","统一社会信用代码", "varchar","input", true,true,new HashMap<String, String>(),true,true),
	A000003("A000003","工商注册号","varchar","input",true, true,new HashMap<String, String>(),true,true),
	A000004("A000004","组织机构代码","varchar","input",true, true,new HashMap<String, String>(),true,true),
	A000005("A000005","税务登记号","varchar","input",true,true,new HashMap<String, String>(),true,true), 
	// A000006("A000006", "注册地址", "varchar", "input", false, true, new
	// HashMap<String, String>(), true, false),
	B000001("B000001","姓名","varchar","input",true,true,new HashMap<String, String>(),true,true),
	B000002("B000002","身份证号","varchar","input",true,true,new HashMap<String, String>(),true,true),
	B000003("B000003","住址","varchar","input",true,true,new HashMap<String, String>(),true,true);
	

	private String colNameEN;
	private String colNameCN;
	private String type;
	private boolean defaultShow;
	private boolean advanceConditionShow;
	private String widget;
	private boolean fuzzy;
	private HashMap<String, String> widgetValue;
	private boolean searchIsShow;

	private ResourceManualAssociateFieldsEnum(String colNameEN, String colNameCN, String type, String widget, boolean defaultShow,
			boolean fuzzy, HashMap<String, String> widgetValue,boolean advanceConditionShow,boolean searchIsShow) {
		this.colNameEN = colNameEN;
		this.colNameCN = colNameCN;
		this.type = type;
		this.widget = widget;
		this.defaultShow = defaultShow;
		this.fuzzy = fuzzy;
		this.widgetValue = widgetValue;
		this.advanceConditionShow = advanceConditionShow;
		this.searchIsShow = searchIsShow;
	}

	public String getColNameEN() {
		return colNameEN;
	}

	public void setColNameEN(String colNameEN) {
		this.colNameEN = colNameEN;
	}

	public String getColNameCN() {
		return colNameCN;
	}

	public void setColNameCN(String colNameCN) {
		this.colNameCN = colNameCN;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public boolean isDefaultShow() {
		return defaultShow;
	}

	public void setDefaultShow(boolean defaultShow) {
		this.defaultShow = defaultShow;
	}

	public HashMap<String, String> getWidgetValue() {
		return widgetValue;
	}

	public void setWidgetValue(HashMap<String, String> widgetValue) {
		this.widgetValue = widgetValue;
	}

	public String getWidget() {
		return widget;
	}

	public void setWidget(String widget) {
		this.widget = widget;
	}

	public boolean isFuzzy() {
		return fuzzy;
	}

	public void setFuzzy(boolean fuzzy) {
		this.fuzzy = fuzzy;
	}

	public boolean isAdvanceConditionShow() {
		return advanceConditionShow;
	}

	public void setAdvanceConditionShow(boolean advanceConditionShow) {
		this.advanceConditionShow = advanceConditionShow;
	}
	public boolean isSearchIsShow() {
		return searchIsShow;
	}

	public void setSearchIsShow(boolean searchIsShow) {
		this.searchIsShow = searchIsShow;
	}

	public static List<OptionalColumn> getOptionalColumns() {

		List<OptionalColumn> OptionalColumns = new ArrayList<OptionalColumn>();

		ResourceManualAssociateFieldsEnum[] values = ResourceManualAssociateFieldsEnum.values();

		for (ResourceManualAssociateFieldsEnum value : values) {

			OptionalColumn optionalColumn = new OptionalColumn(value.getColNameEN(), value.getColNameCN(),
					value.getType(), value.isDefaultShow(), value.getWidget(), value.isFuzzy(), value.getWidgetValue(), value.isSearchIsShow());
			OptionalColumns.add(optionalColumn);

		}
		return OptionalColumns;

	}
	
	public static List<OptionalColumn> getAdvancedConditionColumns() {

		List<OptionalColumn> OptionalColumns = new ArrayList<OptionalColumn>();

		ResourceManualAssociateFieldsEnum[] values = ResourceManualAssociateFieldsEnum.values();

		for (ResourceManualAssociateFieldsEnum value : values) {

			if (value.isAdvanceConditionShow()) {

				OptionalColumn optionalColumn = new OptionalColumn(value.getColNameEN(), value.getColNameCN(),
						value.getType(), value.isDefaultShow(), value.getWidget(), value.isFuzzy(),
						value.getWidgetValue(), value.isSearchIsShow());
				OptionalColumns.add(optionalColumn);
			}

		}
		return OptionalColumns;

	}

	public static List<String> getDefaultShowColumnEN(int rootId) {

		List<String> columns = new ArrayList<String>();

		ResourceManualAssociateFieldsEnum[] values = ResourceManualAssociateFieldsEnum.values();
		if (rootId==100000) {
			for (ResourceManualAssociateFieldsEnum value : values) {
				if (value.getColNameEN().startsWith("A")) {
					if (value.isDefaultShow()) {
						columns.add(value.getColNameEN());
					}
				}
			}
			
		}else{
			for (ResourceManualAssociateFieldsEnum value : values) {
				if (value.getColNameEN().startsWith("B")) {
					if (value.isDefaultShow()) {
						columns.add(value.getColNameEN());
					}
				}
			}
		}
		return columns;
		
	}

}
